package com.dhcc.sdc.base.service;

import cn.hutool.core.lang.tree.Tree;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.plugins.Page;
import com.dhcc.core.framework.base.service.IBaseService;
import com.dhcc.core.framework.result.node.ZTreeNode;
import com.dhcc.sdc.base.entity.ContraindicationEntity;
import com.dhcc.sdc.cdss.dto.SdsQcentityEntityDto;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 病种相关禁忌症表数据服务层接口
 *
 * @ClassName: SdsBaseContraindicationController
 * @Description: TODO
 * @author zhangjin
 * @date 2022-8-31 09:49:29
 */
public interface IContraindicationService extends IBaseService<ContraindicationEntity> {
	
    List<ContraindicationEntity> page(Page<ContraindicationEntity> page, Map<String, Object> map);
    List<ContraindicationEntity> list(Map<String, Object> map);
    List<ContraindicationEntity> getList(Page<ContraindicationEntity> page, Map<String, Object> map);
    List<ContraindicationEntity> query(Page<ContraindicationEntity> page, Map<String, Object> map);
    JSONArray getMap();


    void importItem(List<List<Object>> contraindicationList);
    JSONArray CIInfo(Long episodeId, Long entityId);

    void add(Map<String, Object> params);

    void update(Map<String, Object> params);

    void delete(Long contraindicationId);

    //查询入组患者相关禁忌症
    List<ContraindicationEntity> getByQcincaseId(Long incaseId);

    List<Tree<Long>> buildCdssTree(Long entityId);

    List<SdsQcentityEntityDto> getEntity();

    JSONArray getContraindicationMap();

    List<ContraindicationEntity> pageExcludeMatch(@Param("page") Page<ContraindicationEntity> page, @Param("map") Map<String, Object> map, @Param("excludeIds") List<Long> excludeIds);

}
